//package Test.情感分析;
//
//import weka.classifiers.Classifier;
//import weka.classifiers.bayes.NaiveBayes;
//import weka.classifiers.Evaluation;
//import weka.core.Instances;
//import weka.core.SerializationHelper;
//
//import java.util.List;
//import java.util.Random;
//import java.util.stream.Collectors;
//
//public class SentimentAnalyzer {
//    public static void main(String[] args) throws Exception {
//        // 示例数据
//        List<String> texts = List.of(
//                "这个电影很好看", "这个电影很糟糕", "这个电影一般般", "剧情很精彩", "演员演技很差"
//        );
//        List<String> labels = List.of(
//                "positive", "negative", "neutral", "positive", "negative"
//        );
//
//        // 数据预处理
//        List<String> segmentedTexts = texts.stream()
//                .map(TextPreprocessor::segment)
//                .collect(Collectors.toList());
//
//        // 特征提取
//        Instances data = FeatureExtractor.extractFeatures(segmentedTexts, labels);
//
//        // 训练模型
//        Classifier classifier = new NaiveBayes(); // 使用朴素贝叶斯分类器
//        classifier.buildClassifier(data);
//
//        // 评估模型
//        Evaluation evaluation = new Evaluation(data);
//        evaluation.crossValidateModel(classifier, data, 5, new Random(42)); // 5折交叉验证
//        System.out.println(evaluation.toSummaryString()); // 打印评估结果
//        System.out.println(evaluation.toMatrixString()); // 打印混淆矩阵
//
//        // 保存模型
//        SerializationHelper.write("sentiment.model", classifier);
//
//        // 预测新数据
//        String testText = "这个电影非常精彩";
//        String segmentedTestText = TextPreprocessor.segment(testText);
//        Instances testData = FeatureExtractor.extractFeatures(List.of(segmentedTestText), List.of("positive"));
//        testData.setClassIndex(testData.numAttributes() - 1);
//
//        double prediction = classifier.classifyInstance(testData.firstInstance());
//        String predictedClass = data.classAttribute().value((int) prediction);
//        System.out.println("Predicted sentiment: " + predictedClass);
//    }
//}